#include "serial.h"
#include "QString"

QString head = "~";
QString rear = "\n";

void setupSerialPort(QSerialPort* serial, QString Port) {
    // 设置串口名称
    serial->setPortName(Port); // 根据实际情况修改

    // 配置串口参数
    if (serial->open(QIODevice::ReadWrite)) { // 打开串口
        serial->setBaudRate(QSerialPort::Baud9600);       // 波特率
        serial->setDataBits(QSerialPort::Data8);          // 数据位
        serial->setParity(QSerialPort::NoParity);         // 无校验
        serial->setStopBits(QSerialPort::OneStop);        // 停止位
        serial->setFlowControl(QSerialPort::NoFlowControl); // 无流控
        qDebug() << "Serial port opened successfully!";
    } else {
        qDebug() << "Failed to open serial port!";
    }
}

void sendData(const QByteArray &data, QSerialPort* serial) {
    if (serial->isOpen() && serial->isWritable()) {
        serial->write(head.toUtf8());
        serial->write(data);
        serial->write("\r\n");
        qDebug() << "Data sent:" << data;
    } else {
        qDebug() << "Serial port is not writable!";
    }
}

//QObject::connect(serial, &QSerialPort::readyRead, []() {
//    QByteArray receivedData = serial->readAll(); // 读取所有可用数据
//    qDebug() << "Data received:" << receivedData;
//});

void closeSerialPort(QSerialPort* serial) {
    if (serial->isOpen()) {
        serial->close();
        qDebug() << "Serial port closed.";
    }
}
